using System;
using System.Threading.Tasks;
using Comteck.Domain.Entities;

namespace Comteck.Ktt.Services.Infrastructure {
  public interface IKttUnitOfWork : IDisposable {
    IKttRepository<TEntity, TKey> GetRepository<TEntity, TKey>() where TEntity : class, IEntity<TKey>;
    Task<int> SaveChangesAsync();
    void BeginTransaction();
    Task CommitTransactionAsync();
    void RollbackTransaction();
  }
}
